(where the latest versions and documentation are kept).
About MaraOS
MaraOS, formerly called Marathon Runner, is an application that makes it easier to manage all the different Marathon accessory files (modules) you might have accumulated. The usual way to do this involves a lot of copying, moving, renaming, and forgetting. I wrote MaraOS to make this process somewhat simpler- it moves files to their proper place and renames them, freeing you to organize and name modules as you see fit. By keeping track of names and locations for you, MaraOS allows you to get on with the killing with the minimum of fuss.
It does this by searching for modules within a certain folder and presenting a dialog with popup menus that allow you to more easily select the different modules you want to use. It tracks the following modules: Marathon Preferences, Map, Music, Physics Model, Shapes, Sounds, and different Marathon applications (such as ones whose terminal resources are patched). It then moves modules to their appropriate locations, renames them, and launches the selected Marathon application.
Basically, it's a Startup/Extension Manager kind of program, but for Marathon.
Using MaraOS
To use MaraOS, place it in the same folder as the Marathon application. Place all modules you wish to select from within this folder. MaraOS will then search this folder and all folders within for modules. You can organize your modules any way you please, but before running MaraOS for the first time, heed the following caveats:
- give all your modules names other than the standard Bungie names (ie no map files named "Map").
- make sure all modules have unique names (ie 2 files named "Cool Map" = bad).
- make sure you don't have folders with the standard Bungie names (ie use "Shapes folder" instead of "Shapes")
- Don't forget to rename and move the Marathon Preferences file from the Preferences Folder to within Marathon's folder!!!
If MaraOS encounters a exception to the guidelines above, you will most likely get an error alert prompting you to move or rename certain files. See the troubleshooting document for more information.
Now run MaraOS. After MaraOS searches for modules, you'll be presented with a dialog window with popups from which to choose them. Make your selections and launch Marathon by either clicking on the "Launch Marathon" button or selecting "Launch Marathon" from the File menu.
The selected Marathon application will then launch using the selected modules. When Marathon quits, MaraOS will move the module files back to their original locations and you may either quit by selecting "Quit" from the File menu (command-Q) or repeat the selection/launch process.
Using Sets
You can link modules by creating sets. MaraOS tracks at least one set, called "Standard". You can create new sets and delete existing ones by selecting "Edit Sets…" from the File menu (command-E). You will then be presented with a dialog window listing all current sets.
Clicking on the "New…" button will bring up yet another dialog window asking you to name your new set. Keep set names to less than 64 characters. The new set will configure itself with the current module selections.
Selecting a set within the set editing dialog and clicking on the "Delete" button will delete that set. You cannot delete the "Standard" set.
Click on the "OK" button or double-click on a set name to exit the set editing dialog. Double-clicking on a set name will select that set as the current one displayed in the main dialog window.
To link modules to a set, select the set in the "Sets" popup menu and then select the modules you wish to link to that set.
Using Preferences
In addition to moving files and launching Marathon, MaraOS can perform additional actions to enhance your killing experience. These options are available through the "Preferences…" item in the "File" menu.
Quit other apps - If this option is selected, MaraOS will attempt to quit all open applications and desk accessories before launcing Marathon. If an application or desk accessory has a document open that needs to be saved, that app will be brought to the foreground and you will be given a chance to save your document. Regardless of whether you quit the application or cancel, MaraOS will continue on it's merry way and may leave applications open.
Also, keep in mind that Macintosh applications need contiguous blocks of memory to run in. Although quitting applications may free up memory, fragmenting due to quitting applications in a different order than they were launched can create "low memory" situations. In these cases, it's best to quit all your applications before running MaraOS.
Quit file sharing- If this option is selected, MaraOS will turn file sharing off if it is running. When you quit MaraOS, it will turn it back on. Please read the section on known bugs below for additional info on this feature.
Quit the Finder- If this option is selected, MaraOS will quit the Finder. Be aware that quitting the Finder can have unexpected consequences as its presence may be expected in certain circumstances.
MaraOS can not kill processes other than the one's mentioned above. Other, background-only processes (daemons) will continue to run.
Move on quit- You can also have MaraOS move a selected set into position when you quit. This can be useful if others play Marathon on your computer and do not use MaraOS, or you need to generate a preference file with a different serial number for Marathon. To use this feature, click the checkbox so that it is on and then select a set from the adjacent popupmenu. That set will be moved into position once you quit MaraOS. If the "<current>" item is selected, the set displayed in the main dialog window will be moved.
Technical Notes
MaraOS is a bit slower to start up than Marathon Runner was (making "Runner" something of a misnomer). This is a consequence of the new file searching algorithm- a trade off of speed for flexibility in organization. However, MaraOS makes up for this lost time by not quitting after launch, so you have the endure the initialization only once. I mostly play NetMarathon and I'm usually the Gathering Dude- I end up switching maps quite frequently. The way I wrote MaraOS reflects this usage, minimizing the downtime between games as I switch modules.
If the lag really bothers you, remove extraneous files from the Marathon folder (ReadMes, infrequently used modules, etc.).
The app quitting feature works by killing all processes with types of 'APPL' or 'dfil', in other words regular apps and desk accessories. I've decided that killing all processes would be bad, but if there's interest, I may include a option for this.
The progress bar works by storing the number of progress steps it took at startup. The first time you run this version, the progress bar might be "off" since it has to guess. However, successive runs should provide a better indication of progress, unless gross changes have been made to the directory wherein MaraOS resides.
I've been slack at making sure a lot of the calls I make are available (gestalt? Who needs it.). This means that MaraOS will probably make your computer burst in flames if you're running System 6. Since Marathon won't run under System 6, I haven't sweated it- if your system software will run Marathon, it should run MaraOS as well.
Sometimes, the OK button isn't "defaulted" (outlined and linked to the <return> & <enter> keys) in certain dialogs. The culprits are button-modifying extensions- Godot's World in particular fails to accept the OK button as default in the Sets dialog. Either remove those extensions (yeah, right), or reach for your mouse.
The file sharing quitting feature has the following "bug" : if someone is connected to your machine at the time that MaraOS tries to quit file sharing, erratic behavior can result. Most often, file sharing may not be quit when Marathon launches and/or may not relaunch when MaraOS quits. If the "quit Finder" option is also enabled, even weirder things can happen, such as Marathon switching to the background (didn't know that could happen ;)).
None of the items in the Edit menu do anything.
While other similar applications (Marathon Mystifier and Marathon Master for example) accomplish the same goal as MaraOS by modifiying Marathon to look for a particular module, I've opted to move files to accomodate Marathon. I do this out of my own reservations at modifying the Marathon application in any way. A downside to this is that file tracking is a bit more complicated and can sometimes get confused. If this happens, move and rename files manually as appropriate, and if that doesn't work, throw out the MaraOS Preferences file.
As you may have noticed by the version number, MaraOS is now in final release. Thanks go to the many people who've tried it, submitted their comments and suggestions, and helped me track down bugs. It's been a bumpy ride but since I was learning as I went along, I hope you can understand :).
I've put it all the features that I envisioned in an ideal Marathon file manager (well, except for the resolution-switching, which is apparently really hairy. Anyone have some code?), but if there's a feature you'd like to see, please let me know. Sometimes I need to bash my head repeatedly against the wall.
Legal Stuff
MaraOS is freeware, my way of giving back to the Marathon community for all the cool things that have come out of it. All I ask is that you consider dropping me an e-mail to tell me what you think, even if it is only to tell me how utterly boring and dry the ReadMe is.
While MaraOS is freeware, it is not public domain and I retain all rights. It may be freely distributed but please do not distribute modified copies and include the ReadMe and Troubleshooting documents. Also, please do not include MaraOS in a software bundle without prior permission.
Thanks to
Scott Johnson - for the original idea and creative input
Michael Leetmaa - for technical assistance
Guillaume Fortin (author of Marathon Mystifier) - for technical discussion
Nathan Federici - for the Copland-style folder icon
Jim Luther of Apple Computer- for MoreFiles, saving me (and consequently the world) from writing my own copying routines.
Eddy J. Gurney- for his progress bar cdef.
All the kind folks at c.s.m.programmer.help - for never letting my stupid questions go unanswered
All the kids in the AHABS and Chemistry zones here at the University of Wisconsin - for providing me with my daily Marathon fix (yes, addiction is an ugly thing)
Version History
1.0.1
- Released 5 December 1995
- Put in a check to make sure LaunchApplication worked. Please see the Troubleshooting document for details.